home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / parallel / stanford < prev    next >
Text File  |  1992-04-11  |  17KB  |  358 lines

  1.  
  2.  
  3.          PARALLEL AND DISTRIBUTED COMPUTATION AT STANFORD
  4.               COURSES AND RESEARCH
  5.                            1991-1992
  6.  
  7. Name of contact persons:  The CS and EE departments have more than a
  8. dozen substantial research projects explicitly targeting parallel and
  9. distributed computing.  For information on these contact the director
  10. of the area closest to your interests.
  11.  
  12.     Scientific Computing:  Gene Golub
  13.     Systems:               John Hennessy
  14.     AI:                    Jean-Claude Latombe
  15.     Theory:                Vaughan Pratt
  16.  
  17. Address for all contact persons:
  18.     Department of Computer Science
  19.     Stanford University,
  20.     Stanford, CA 94305
  21.  
  22. E-mail Address for all contact persons:
  23.     <surname>@cs.stanford.edu
  24.  
  25. Telephone numbers:
  26.     Golub:        415-723-3125
  27.     Hennessy:    415-725-3712
  28.     Latombe:    415-723-3432
  29.     Pratt:        415-723-2943
  30.  
  31. COMPUTER ACCESS
  32.  
  33.     Within CS and CSL, mainly workstations and parallel computers:
  34.  
  35.     Workstations: people working on parallel computing have access
  36.     to an estimated one to two hundred workstations, mostly DEC
  37.     3100's, Sun-4's, and older workstations.  Most of these are
  38.     configured in clusters with file servers, often just another
  39.     workstation but with some larger servers as well including
  40.     three Sun-4/490's, which also provide other services such as
  41.     timesharing and Xwindow serving.  Including machines used by
  42.     others in the department brings the total to over four hundred
  43.     computers.
  44.  
  45.     Parallel machines:  an Alliant, a Sequent Multimax, a Cydrome,
  46.     an 8-processor SGI IRIS 380, six SGI 4-processor IRIS 340's, an
  47.     SGI 2-processor IRIS 320 VGX (million polygons/sec), 7 DEC
  48.     5-processor Fireflies, a 16-processor IPSC-2, and a
  49.     32-processor IPSC 860.  Under construction is the DASH machine,
  50.     the prototype of which has 64 MIPS-3000 processors for an
  51.     expected 1600 MIPS and 1/4 Gigabyte RAM.
  52.  
  53.     Elsewhere on campus:
  54.  
  55.     Network access to 6000 registered IP addresses on campus of
  56.     which 1400 are Unix machines and the rest are gateways, PC's,
  57.     Macintoshes, VAX/VMS's, etc.  Parallel machines in other
  58.     departments include Convexes, Pyramids, and a Connection
  59.     Machine.  A major university facility is a 6-processor IBM
  60.     ES390 (an upgraded 390 600J).
  61.  
  62. DEGREES OFFERED
  63.  
  64.     BS, MS, Ph.D.
  65.  
  66. CURRICULUM
  67.  
  68. We offer 15 courses explicitly about parallel and distributed
  69. computation, and others that have a substantial parallel computation
  70. component.  Parallel and distributed computation is the main or a major
  71. research interest of more than 20 of our faculty.
  72.  
  73. Remarks relevant to courses offered:
  74.  
  75. Listed below are those of our courses that are explicitly about
  76. parallel and distributed computation, and those research interests of
  77. the faculty that bear on parallel and distributed computation.
  78.  
  79. CS140. Concurrent Programming--Principles of concurrent programming,
  80. including processes, mutual exclusion and synchronization,
  81. message-passing and monitors. Emphasis on principles and algorithms,
  82. rather than on implementation.
  83. Prerequisites: 107 and 110.  3 units, Spr (Lam)
  84.  
  85. EE384/CS244. Computer Networks:  Architectures and
  86. Protocols---Objectives of computer networks; network structure and
  87. components; switching techniques (circuit switching and packet
  88. switching); network functions; layered network architectures (the ISO
  89. reference model); data link protocols (character-oriented protocols,
  90. bit-oriented protocols, error checking, window flow control, and
  91. multi-access protocols); network control (datagrams, virtual circuits,
  92. routing, and congestion control); transport and session protocols
  93. (end-to-end communication, interconnection of networks). Examples and
  94. standard protocols are cited for point-to-point, satellite, packet
  95. radio, and local area networks.  3 units, Aut (Cheriton)
  96.  
  97. CS315A. Parallel Computer Architecture and Programming---Design and
  98. programming of architectures.  Survey of different programming models;
  99. study of research and commercial parallel machines designed to support
  100. the shared-memory, message-passing, dataflow, systolic, and
  101. data-parallel paradigms.  Interleaved with architectural studies are
  102. lectures on techniques for programming parallel computers.
  103. Implementation trade-offs dealing with synchronization granularity,
  104. communication, data access patterns, and load balancing using case
  105. studies from real applications. Integral programming assignments are
  106. done on one or more commercial multiprocessors.
  107. Prerequisites: 140, 212, and reasonable programming experience.
  108. 3 units, Win (Gupta)
  109.  
  110. CS315B. Parallel Programming Project--Continuation of 315A. A significant
  111. parallel programming project is required. A shared-memory
  112. multiprocessor, and possible message-passing machine and Connection
  113. Machine for doing the projects. Lectures of parallel programming
  114. languages and their implementation, performance debugging of parallel
  115. programs, parallel data structures and algorithms. Guest speakers on
  116. issues in parallel programming.  Prerequisites: 315A or consent of
  117. instructor.
  118. 3 units, Spr (Gupta)
  119.  
  120. CS340. Distributed Systems---Overview of distributed systems, primarily
  121. as an extension of uniprocessor operating systems to span networks.
  122. Presents the impact of networking on each of the subsystems and issues
  123. discussed in 240A,B, including basic architectural models;
  124. network-transparent message-passing and remote procedure call;
  125. network-wide virtual memory; distributed file systems; encryption, and
  126. multi-site concurrency control, replication, and error recovery.
  127. Prerequisites: 240B and 244.  3 units, Spr (Cheriton)
  128.  
  129. CS341. Distributed Systems Project--Companion project option for students
  130. taking 340.
  131. Corequisite: 340.  3 units, Spr (Cheriton)
  132.  
  133. CS343. Topics in Compilers---Focus is on compilers for parallel
  134. architectures. Lectures/discussions explore program analysis techniques
  135. and code optimizations for a variety of parallel machines, including
  136. the superscalars, distributed memory machines, and multiprocessors. A
  137. significant project is included. Prerequisite: 243.  3-6 units, Win
  138. (Lam)
  139.  
  140. EE484/CS344. Computer Networks:  Modeling and Analysis.  Network
  141. functions, architectures and protocols; computer traffic
  142. characterization; resource sharing; packet-switched store-and-forward
  143. networks (e.g., ARPAnet):  delay analysis, network design and
  144. optimization including capacity assignment, routing and topological
  145. design; multi-access/broadcast protocols (used in packet-switched
  146. satellite, ground radio, and local networks): fixed assignment, random
  147. access, demand assignment, adaptive strategies, stability
  148. considerations and dynamic control.  Recommended:  knowledge of 244.
  149. Prerequisite: 265.  3 units, Spr (Tobagi)
  150.  
  151. CS347. Distributed Databases---For students with some background in
  152. database systems, emphasizing principles and system organization of
  153. distributed databases. Overview of distributed databases. Levels of
  154. distribution transparency. Data fragmentation and allocation.
  155. Distributed database design.  Equivalence transformations for queries.
  156. Query translation. Query optimization.  Theory and applications of
  157. semijoins.  Properties of transactions in distributed databases.
  158. Reliability of transactions in distributed databases. Reliability of
  159. transactions. The 2-phase commitment protocol. Concurrency control
  160. based on locking. Concurrency control based on timestamps. Nonblocking
  161. commit protocols. Reliability of distributed databases. Review of
  162. commercial systems and research prototypes.
  163. Prerequisite: 245.  Recommended: 145 and a familiarity with computer
  164. networks.  3 units, Sum/Aut (Ceri)
  165.  
  166. CS352.  Foundations of Control Structures---Theory of
  167. constructs for controlling program execution.  Theories of parallel
  168. control:  temporal logic, CCS, CSP.  Models of parallel control: state
  169. trajectories, synchronization trees, execution traces, partial orders,
  170. metric spaces.  Notions of time: ordered, real, probabilistic.  Related
  171. soundness, completeness, and complexity issues.
  172. Prerequisites.  CS353 and CS258, or consent of instructor.  3 units,
  173. Spr (Pratt)
  174.  
  175. CS355: Reasoning about Finite-state Concurrent Systems.  Automatic
  176. methods for analyzing finite-state systems, with emphasis on automatic
  177. formal verification.  Students should have a good understanding of
  178. basic automata and complexity theory, in addition to an
  179. undergraduate-level background in Computer Science.  Topics: state
  180. graph and automata models of system behavior.  Automata on infinite
  181. strings.  Linear and branching-time temporal logic.  Model-checking.
  182. Applications to circuits, algorithms, and protocols.  Modelling
  183. real-time systems.  Analysis methods based on Boolean formulas, and
  184. other ways of coping with the "state explosion problem." Prerequisite:
  185. CS154 or CS254.  Recommended: Good understanding of basic automata and
  186. complexity theory, and undergraduate-level background in computer
  187. science.  3 units, Win (Dill)
  188.  
  189. CS357A. Reactive Systems: The Languages--Reactive systems maintain an
  190. on-going interaction with their environment, e.g., concurrent,
  191. distributed, and real-time programs. Basic models of reactive systems:
  192. generic transition system, shared variables, semaphores and other
  193. synchronization constructs, communication constructs, asynchronous and
  194. synchronous message passing, petri nets. Faithful modeling of
  195. concurrency: interleaving, fairness.  Specification language of
  196. temporal logic:  temporal operators, future and past formula, axioms
  197. and rules, temporal and program validity. Specification of programs:
  198. hierarchy of program properties, classes of safety, termination,
  199. intermittence, response, persistence, and progress properties.
  200. Prerequisite: 157 or equivalent.  3 units, Win (Manna)
  201.  
  202. CS357B. Reactive Systems:  Verification and Development---Formal methods
  203. for verification and development of reactive programs, based on
  204. formalism of temporal logic that has been specifically developed to
  205. reason about behaviors of reactive programs.  Methodologies for formal
  206. verification of properties of reactive program: proving safety,
  207. liveness, precedence, causality, response, and progress properties.
  208. Derived development approaches. State invariances, incremental
  209. verification, heuristics, assertion diagrams, overtaking analysis,
  210. forward and backward analysis, history variables. Chain and
  211. well-founded rules. Verification under assumption of fairness. Programs
  212. with large number of similar processes. Real-time programs.
  213. Assertional proof methods. Case of finite-state programs and automatic
  214. verification tools for this case. Predicate automata.
  215. Prerequisites: 157 or equivalent, and 357A.  3 units, Spr (Manna)
  216.  
  217. CS367A. Parallel Computation--Introduction to theoretical issues in
  218. parallel computation.  Topics: Parallel machine models. Design and
  219. analysis of algorithms on systolic arrays: arithmetic operations,
  220. simple graph algorithms. Algorithms for hypercube-related networks:
  221. sorting, routing. PRAM model of computation.  Basic PRAM algorithms:
  222. prefix computation, sorting, shortest paths, minimum-weight spanning
  223. tree.  Reducing the processor-time product.  Simulation of stronger
  224. PRAM models by weaker ones. Complexity issues: definition of NC and
  225. P-completeness; some simple lower bounds.
  226. 3 units (Plotkin) alternate years, given 1991-92
  227.  
  228. CS367B. Parallel Computation--Advanced parallel algorithms. Possible
  229. topics: Parallel algorithms for maximal independent set and related
  230. problems; parallel graph coloring. Evaluation of straight-line code,
  231. P-complete problems. Deterministic and randomized parallel algorithms
  232. for flows and related problems; assignment problem, matching in general
  233. graphs.
  234. 3 units, Win (Plotkin)
  235.  
  236. CS441. Topics in ADA Programming.  The ADA language is used as an example
  237. for discussing current research in high level languages for programming
  238. large systems and distributed systems. Related developments in
  239. specification languages are discussed.  Part 1 (the ADA language design
  240. and programming techniques): multi-task programming, compilation
  241. algorithms for tasking, runtime supervisors for distributed systems in
  242. ADA, detection of concurrency error: comparison of ADA with other high
  243. level concurrent languages. Part 2: design of specification languages
  244. related to ADA, specification, validation, and verification methods for
  245. multi-task programs; environments for programming with specifications.
  246. Prerequisite: 107.  3 or 4 units, Win (Luckham)
  247.  
  248. The following two-course sequence while not exclusively about parallel
  249. computing is an essential prerequisite for and leads into 340 and 341.
  250.  
  251. CS240A,B. Operating Systems--Two-quarter sequence in operating systems
  252. design and implementation. 240A: Fundamentals of operating system
  253. implementation--basic structure; multi-programming, processes, and
  254. scheduling; synchronization and communication mechanisms; I/O device
  255. management; memory management, segmentation, paging; file systems,
  256. directory management, disk allocation. 240B: Deeper coverage of issues
  257. that arise in all subsystems of an operating system; naming and I/O
  258. protocols; protection; reliability; performance; user interfaces; and
  259. networking.
  260. Prerequisite for 240A: 140 or equivalent. Prerequisite for 240B: 240A.
  261.  
  262. Some other courses have substantial parallel computing components.
  263.  
  264. ================================
  265.  
  266. Faculty with research interests bearing on parallel or distributed
  267. computation, including foundational work in theory and cooperative and
  268. multiple-agent work in AI:
  269.  
  270. David Cheriton.  Design of distributed computer systems, parallel
  271. computer systems, communication protocols.  Techniques for high-speed
  272. computer communication.  Developing a multiprocessor workstation with
  273. focus on parallel distributed operating system techniques.
  274.  
  275. David Dill.  Finite-state concurrent systems, protocol and hardware
  276. verification, asynchronous circuits, concurrency.  Automatic
  277. verification of asynchronous circuit designs.
  278.  
  279. Michael Flynn.  Investigation of approaches to massively parallel
  280. machines.   Studying characteristics of parallel processors such as
  281. limits on their performance.
  282.  
  283. Andrew Goldberg.  Design and analysis of combinatorial parallel and
  284. distributed algorithms.
  285.  
  286. Gene Golub.  Numerical algorithms for parallel computation.
  287.  
  288. Anoop Gupta.  Design of general-purpose scalable parallel computer
  289. architectures.  Design of interconnection networks for multiprocessors,
  290. understanding the role of locality.  Building a scalable
  291. directory-based shared-memory (DASH) multiprocessor using very high
  292. performance individual nodes.  Multiprocessor scheduling.  Design of a
  293. concurrent object-oriented programming language.
  294.  
  295. John Hennessy.  Compiler systems for multiprocessors and very high
  296. performance architectures.
  297.  
  298. Monica Lam.  Parallel systems.  Languages, compilers and architectures
  299. that cooperate to deliver performance.
  300.  
  301. Jean-Claude Latombe.  Reasoning in multiple-agent worlds.  Representing
  302. one agent's knowledge about other agents' knowledge, recognizing other
  303. agents' goals, reasoning about time-dependent interactions with other
  304. agents and modeling multiple-agent society laws.
  305.  
  306. Marc Levoy.  Parallel algorithms and architectures for image synthesis
  307. and scientific visualization, with emphasis on real-time display of
  308. complex scenes and data.
  309.  
  310. David Luckham.  Design of prototyping languages for large distributed
  311. time-critical systems  Specification languages for parallel programs.
  312.  
  313. Edward McCluskey.  Techniques for concurrent checking of system
  314. operation.
  315.  
  316. Teresa Meng.  Parallel algorithms and low power implementation of such
  317. algorithms.  Wireless communication of video signals for small
  318. devices.
  319.  
  320. Zohar Manna.  Conncurrent programming.  Development of a temporal logic
  321. for the specification and verification of concurrent programs.
  322.  
  323. Rajeev Motwani.  Design and analysis of algorithms and data structures
  324. with particular emphasis on parallelism.
  325.  
  326. Nils Nilsson.  Communicating, distributed AI systems and robots.
  327.  
  328. Serge Plotkin.  Design and analysis of parallel algorithms and data
  329. structures.  Theoretical issues in distributed computation.
  330.  
  331. Vaughan Pratt.  Process specification languages for analog and digital
  332. domains with computational and noncomputational applications.
  333.  
  334. David Rumelhart.  Connectionist approach to AI and cognitive science.
  335.  
  336. Yoav Shoham. Agent Oriented Programming. Theoretical foundations of
  337. ascribing mental qualities to machines. Design, implementation and
  338. application of programming languages for agents with mental state,
  339. languages which include communicative speech acts.
  340.  
  341. Fouad Tobagi.  Telecommunications networks, computer networks, packet
  342. radio, high speed networks and their interfaces, broadband ISDN, fast
  343. packet switches, network protocols.
  344.  
  345. Daniel Weise.  Parallel processing, techniques for parallelizing code
  346. for multiple processors.
  347.  
  348. Gio Wiederhold.  Conceptual database models for distributed databases;
  349. object models for multi-user database query and update processing
  350. interfaces.
  351.  
  352. Terry Winograd.  Design of computer systems for cooperative work,
  353. focusing on the social activity by which people generate the space of
  354. cooperative actions in which they work.
  355.  
  356.  
  357.  
  358.